,

Les actions possibles

(debug)              # Renvoie les informations sur les fenêtres ouvertes

(maximize) (maximize_horizontally) (maximize_vertically)

(minimize)

(fullscreen)         # Plein-écran

(center)             # Centre la fenêtre sur l'écran

(geometry largeur[x]hauteur[+]abcisse[+]ordonnée)

  * (geometry "400x200+0+0") # Placera la fenêtre en 400 de large par 200 de haut en haut à gauche

  * (geometry "400x200")

  * (geometry "+10+10")

(set_workspace 2)    # Déplace la fenêtre vers le bureau n° 2
(set_viewport 2)     # Déplace la fenêtre vers le bureau n° 2 (Compiz)

(change_workspace 2) # Affiche le bureau n°2

(pin)                # Rend la fenêtre présente sur tous les bureaux
(stick)              # Rend la fenêtre présente sur tous les bureaux (Compiz)

(opacity 80)         # Donne une opacité à 80%

(above)              # Met la fenêtre en avant-plan

(focus)              # Met le focus sur la fenêtre

(undecorate)         # Supprime les décorations du gestionnaire de fenêtres (Barre de titre et bordures)

Par exemple faire apparaître Gedit sur TOUS les bureaux (option pin - le contenu de chaque fenêtre sera identique aux autres) :

; Duplique la fenêtre Gedit sur chaque bureau
( if 
  ( is ( application_name ) "Gedit" )
  ( pin )
)

Placer systématiquement Firefox en haut à gauche ("+0+0"), avec une largeur de 1300 px et une hauteur de 1150 px ("1200x1150") :

; Positionne les fenêtres Firefox en haut à gauche et avec une certaine taille
( if 
  ( is ( application_name ) "Firefox" )
  (geometry "1200x1150+0+0")
)

Syntaxe des règles

La règle et ses éléments doivent être entre parenthèses : (règle)

La règle peut être :

(if (is (application_name) "gThumb") (maximize)) (si l'application qui ouvre la fenêtre est gThumb alors devilspie va maximiser la fenêtre).

La condition peut être :

L'objet de la condition peut être :

Il peut être utile de combiner des conditions, par exemple traiter toutes les fenêtres de Firefox dont le titre contient ubuntu ; on peut à cet effet utiliser and et or.

(and (is (application_name) "Firefox") (contains (window_name) "Ubuntu"))

De la même façon, on peut faire appliquer plusieurs actions en faisant débuter la liste par begin :

(if (is (application_name) "gThumb") (begin (maximize) (set_workspace 4)))

Quand une action comporte un argument l'ensemble doit être entre parenthèses.

Obtenir le nom d'une application

Pour obtenir le nom exacte d'une application (à utiliser avec application_name) il vous suffit de créer un fichier ~/.devilspie/debug.ds et d'y ajouter : (debug)

Ensuite, lancez "devilspie -d" dans une console et observez les lignes apparaissant à l'écran lorsque vous lancez une application. Exemple pour Firefox : Window Title: 'Mozilla Firefox Beta 1'; Application Name: 'Firefox'; Class: 'Firefox-bin'; Geometry: 1014x692+5+46

La partie à retenir est : "Application Name: 'Firefox'".

pour finir voici un exemple avec gajim qui associe and et or :

(if
  (and (contains (application_name) "gajim.py") (or(contains(window_name) "salon 1") (contains(window_name) "salon 2")))
   (begin
    (set_workspace 1)
    (below)
    (undecorate)
    (skip_pager)
    (skip_tasklist)
    (wintype "utility")
    (geometry "900x450+375+55")
  )
)

Astuces

Il est possible d'avoir plusieurs règles dans un seul fichier. Il faut pour cela englober les règles dans un "begin" général.

(begin
  (if (contains (application_name) "toto")
      (begin (set_workspace 1)
             (geometry "+0+0")))
      
  (if (contains (application_name) "titi")
      ...)
      
  ....
)

Si vous désirez avoir une application sur tous les bureaux en utilisant Compiz, utilisez les éléments suivants :

(stick)
(wintype "dock")

Pour Metacity :

(pin)
(wintype "desktop")

Si vous voulez lancer une application sur un bureau précis en utilisant Compiz (X est le numéro du bureau visé) :

(set_viewport X)

Pour Metacity :

(set_workspace X)
si set_viewport ne fonctionne pas il y a une autre solution, il suffit de savoir que compiz n'est en fait qu'un seul bureau exemple : pour un bureau de 800x600 compiz le considère comme un bureau de 3200x600, donc si je veux ouvrir mon application sur le second bureau (geometry "800x600+800+0").

Problèmes connus

Si l'application graphique ne se lance pas, ouvrez avec les droits d'administrateur le fichier /usr/bin/gdevilspie.
Commentez 1) la ligne suivante:

# self.UpdateAutostartStatus()

Enregistrer le fichier et relancer gdevilpsie. (Merci à hrvooje de la communauté de Linux Mint)

Un changement de paramétrage n'est pris en compte qu'après un redémarrage de devilspie. Le plus simple est de redémarrer la session.

Liens


Contributeur : epictete, McPeter, ljere, Fenouille84

1)
ajouter un # au début de ligne